package com.kolon.business.mngr.service.dao;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

/**
 *	ServiceDao interface
 *	@author Stone
 *	@since 2011.06.29
 */
@SuppressWarnings("rawtypes")
public interface ServiceDao {
	
	/**
	 * 앱 명 체크 조회
	 */
	public int getAppNmCnt(Map map) throws SQLException;

	/**
	 * 디렉토리 체크 조회
	 */
	public int getFdrNmCnt(Map map) throws SQLException;
	
	/**
	 * 버전 체크 조회
	 */
	public int getAppVerCnt(Map map) throws SQLException;
	
	/**
	 * 히스토리 체크 버전 조회
	 */
	public int getAppHstyCnt(Map map) throws SQLException;
	
	/**
	 * 팀 등록시 중복체크
	 */
	public Map getTeamChk(Map map) throws SQLException;
	
	/**
	 * 서비스 정보 조회
	 */
	public Map getMap(Map map) throws SQLException;
	
	/**
	 * 서비스 앱 정보 조회
	 */
	public Map getAppMap(Map map) throws SQLException;
	
	/**
	 * 서비스 레코드수 조회
	 */
	public int getCount(Map map) throws SQLException;
	
	/**
	 * 서비스 목록 조회
	 */
	public List getPageList(Map map, int startIndex, int endIndex) throws SQLException;
	
	/**
	 * 서비스 앱 목록 조회
	 */
	public List getAppList(Map map) throws SQLException;
	
	/**
	 * 팀 수 조회
	 */
	public int getDeptAppsCount(Map map) throws SQLException;
	
	/**
	 * 팀 목록 조회
	 */
	public List getDeptAppsPageList(Map map, int startIndex, int endIndex) throws SQLException;
	
	/**
	 * 서비스 팀 목록 조회
	 */
	public List getServTeamList(Map map) throws SQLException;
	
	/**
	 * 서비스 회사 목록 조회
	 */
	public List getServCpyList(Map map) throws SQLException;
	
	/**
	 * 회사에 대한 팀 목록 조회
	 */
	public List getServCpyTeamList(Map map) throws SQLException;
	
	/**
	 * 서비스 시퀀스를 얻음
	 */
	public Map getMax() throws SQLException;

	/**
	 * 앱 시퀀스를 얻음
	 */
	public Map getAppMax() throws SQLException;
	
	/**
	 * 서비스 등록
	 */
	public void insert(Map map) throws SQLException;
	
	/**
	 * 앱 정보 등록
	 */
	public void insertAppInfo(Map map) throws SQLException;
	
	/**
	 * 서비스 팀 등록
	 */
	public void insertServTeam(Map map) throws SQLException;
	
	/**
	 * 서비스 수정
	 */
	public void update(Map map) throws SQLException;

	/**
	 * 서비스 사용여부 수정
	 */
	public void updateUseYn(Map map) throws SQLException;
	
	/**
	 * 서비스 수정날짜 수정
	 */
	public void updateMdfyDttm(Map map) throws SQLException;
	
	/**
	 * 서비스 팀 사용여부 수정 (삭제)
	 */
	public void updateTeamUseYn(Map map) throws SQLException;
	
	/**
	 * 서비스 팀 사용여부 수정 (모두 삭제)
	 */
	public void updateTeamAllUseYn(Map map) throws SQLException;
	
	/**
	 * 서비스 업그레이드 수정
	 */
	public void upgrade(Map map) throws SQLException;
	
	/**
	 * 서비스 삭제
	 */
	public void delete(Map map) throws SQLException;
	
	/**
	 * 서비스 앱 삭제
	 */
	public void deleteServInfo(Map map) throws SQLException;
	
	/**
	 * 앱 삭제
	 */
	public void deleteAppInfo(Map map) throws SQLException;
	
	/**
	 * 서비스 팀 삭제
	 */
	public void deleteServTeam(Map map) throws SQLException;
	
	/**
	 * 서비스 삭제시 해당 팀 삭제
	 */
	public void deleteServTeamList(Map map) throws SQLException;
	
}
